<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>scugic: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">scugic
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li class="current"><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">scugic Documentation</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The generic interrupt controller driver component.The interrupt controller driver uses the idea of priority for the various handlers. Priority is an integer within the range of 1 and 31 inclusive with default of 1 being the highest priority interrupt source. The priorities of the various sources can be dynamically altered as needed through hardware configuration.</p>
<p>The generic interrupt controller supports the following features:</p>
<ul>
<li>specific individual interrupt enabling/disabling</li>
<li>specific individual interrupt acknowledging</li>
<li>attaching specific callback function to handle interrupt source</li>
<li>assigning desired priority to interrupt source if default is not acceptable.</li>
</ul>
<p>Details about connecting the interrupt handler of the driver are contained in the source file specific to interrupt processing, <a class="el" href="xscugic__intr_8c.html">xscugic_intr.c</a>.</p>
<p>This driver is intended to be RTOS and processor independent. It works with physical addresses only. Any needs for dynamic memory management, threads or thread mutual exclusion, virtual memory, or cache control must be satisfied by the layer above this driver.</p>
<p><b>Interrupt Vector Tables</b></p>
<p>The device ID of the interrupt controller device is used by the driver as a direct index into the configuration data table. The user should populate the vector table with handlers and callbacks at run-time using the <a class="el" href="group__scugic__v3__1.html#ga48f9dd531aa861a74e6bd627943573ea" title="Makes the connection between the Int_Id of the interrupt source and the associated handler that is to...">XScuGic_Connect()</a> and <a class="el" href="group__scugic__v3__1.html#gad162acedbbd41fd890fc7f2225ed480b" title="Updates the interrupt table with the Null Handler and NULL arguments at the location pointed at by th...">XScuGic_Disconnect()</a> functions.</p>
<p>Each vector table entry corresponds to a device that can generate an interrupt. Each entry contains an interrupt handler function and an argument to be passed to the handler when an interrupt occurs. The user must use <a class="el" href="group__scugic__v3__1.html#ga48f9dd531aa861a74e6bd627943573ea" title="Makes the connection between the Int_Id of the interrupt source and the associated handler that is to...">XScuGic_Connect()</a> when the interrupt handler takes an argument other than the base address.</p>
<p><b>Nested Interrupts Processing</b></p>
<p>Nested interrupts are not supported by this driver.</p>
<p>NOTE: The generic interrupt controller is not a part of the snoop control unit as indicated by the prefix "scu" in the name of the driver. It is an independent module in APU.</p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who  Date     Changes
----- ---- -------- ---------------------------------------------------------
1.00a drg  01/19/00 First release
1.01a sdm  11/09/11 The <a class="el" href="struct_x_scu_gic.html" title="The XScuGic driver instance data. ">XScuGic</a> and <a class="el" href="struct_x_scu_gic___config.html" title="This typedef contains configuration information for the device. ">XScuGic_Config</a> structures have changed.
	      The HandlerTable (of type XScuGic_VectorTableEntry) is
	      moved to <a class="el" href="struct_x_scu_gic___config.html" title="This typedef contains configuration information for the device. ">XScuGic_Config</a> structure from <a class="el" href="struct_x_scu_gic.html" title="The XScuGic driver instance data. ">XScuGic</a> structure.</pre><pre>              The "Config" entry in <a class="el" href="struct_x_scu_gic.html" title="The XScuGic driver instance data. ">XScuGic</a> structure is made as
	      pointer for better efficiency.</pre><pre>              A new file named as <a class="el" href="xscugic__hw_8c.html">xscugic_hw.c</a> is now added. It is
	      to implement low level driver routines without using
	      any xscugic instance pointer. They are useful when the
	      user wants to use xscugic through device id or
	      base address. The driver routines provided are explained
	      below.
	      XScuGic_DeviceInitialize that takes device id as
	      argument and initializes the device (without calling
	      XScuGic_CfgInitialize).
	      XScuGic_DeviceInterruptHandler that takes device id
	      as argument and calls appropriate handlers from the
	      HandlerTable.
	      XScuGic_RegisterHandler that registers a new handler
	      by taking xscugic hardware base address as argument.
	      LookupConfigByBaseAddress is used to return the
	      corresponding config structure from XScuGic_ConfigTable
	      based on the scugic base address passed.
1.02a sdm  12/20/11 Removed AckBeforeService from the <a class="el" href="struct_x_scu_gic___config.html" title="This typedef contains configuration information for the device. ">XScuGic_Config</a>
	      structure.
1.03a srt  02/27/13 Moved Offset calculation macros from *.c and *_hw.c to
	      *_hw.h
	      Added APIs</p><ul>
<li><a class="el" href="group__scugic__v3__1.html#gaf58a00ee3c052d8aec17b179c86388c7" title="Sets the interrupt priority and trigger type for the specificd IRQ source. ">XScuGic_SetPriTrigTypeByDistAddr()</a></li>
<li><a class="el" href="group__scugic__v3__1.html#ga0c6a61acf2d5d030542c788a9aa42004" title="Gets the interrupt priority and trigger type for the specificd IRQ source. ">XScuGic_GetPriTrigTypeByDistAddr()</a>
	      (CR 702687)
		Added support to direct interrupts to the appropriate CPU. Earlier
		  interrupts were directed to CPU1 (hard coded). Now depending
		  upon the CPU selected by the user (xparameters.h), interrupts
		  will be directed to the relevant CPU. This fixes CR 699688.
1.04a hk   05/04/13 Assigned EffectiveAddr to CpuBaseAddress in
		  XScuGic_CfgInitialize. Fix for CR#704400 to remove warnings.
		  Moved functions XScuGic_SetPriTrigTypeByDistAddr and
            XScuGic_GetPriTrigTypeByDistAddr to <a class="el" href="xscugic__hw_8c.html">xscugic_hw.c</a>.
		  This is fix for CR#705621.
1.05a hk   06/26/13 Modified tcl to export external interrupts correctly to
                    xparameters.h. Fix for CR's 690505, 708928 &amp; 719359.
2.0   adk  12/10/13 Updated as per the New Tcl API's
2.1   adk  25/04/14 Fixed the CR:789373 changes are made in the driver tcl file.
3.00  kvn  02/13/15 Modified code for MISRA-C:2012 compliance.</li>
</ul>
</pre><pre></pre> </div></div><!-- contents -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
